Users of computing devices (e.g., laptops, cellular phones, and personal digital assistants) often need to communicate in real time. A common form of real-time communications is provided by instant messaging services. An instant messaging service allows participants at endpoints to send messages and have them received within a second or two by the other participants in a conversation. The receiving participants can then send responsive messages to the other participants in a similar manner. To be effective, a real-time conversation relies on the participants' becoming aware of, reviewing, and responding to received messages very quickly. This quick response is in contrast to conventional electronic mail systems in which the recipients of electronic mail messages respond to messages at their convenience.
When an initiating participant wants to start a real-time conversation, that participant needs to know whether the intended participants are available to respond in real time to a message. If not, then communications via conventional electronic mail, voice mail, or some other mechanism may be more appropriate. For example, if the computers of the intended participants are currently powered off, then a real-time conversation may not be possible. Moreover, if their computers are currently powered on, but the intended participants are away from their computers, a real-time conversation is also not possible. The initiating participant would like to know the availability of the intended participants so that an appropriate decision on the form of communication can be made.
Presence services provide this availability information. The availability status of an entity such as a computer system or a user associated with that computer system is referred to as “presence information.” presence information identifies the current “presence state” of the user. Users make their presence information available to a presence service so that other parties can decide how best to communicate with them. For example, the presence information may indicate whether a user is logged on (“online”) with an instant messaging server or is logged off (“offline”). Presence information may also provide more detailed information about the availability of the user. For example, even though a user is online, that user may be away from their computer in a meeting. In such a case, the presence state may indicate “online” and “in a meeting.”
One of the challenges in providing presence information to other parties is that not all parties should be shown the same presence information. For example, a user may desire to treat incoming communication from a family member differently than they would from a person that they manage. Prior systems that have tried to solve this problem have attempted to do so by providing the user with a robust set of rules that they can use to specify how individual communication requests should be managed. For example, U.S. Application Publication No. 2006/0015609 entitled “Automatically Inferring and Updating an Availability Status of a User” describes a system wherein a user may define a complex set of rules to handle incoming communications. The user is able to define how each communication is to be managed by specifying various actions that are to be taken (i.e., an availability status that is to be displayed to the contacting party, an interrupt status that is to be conveyed to the user) when various conditions are met (i.e., an activity that the user is participating in when the communication is received, an indication from whom the communication is received). While such a system provides great flexibility to the user, it does so at the expense of usability. Most users are overwhelmed when offered such a large variety of choices, and few users are able to maintain their rule set in order to take full advantage of the system. As a result, it would therefore be beneficial if a simple and easy-to-use presence system were available for users in order to make the system more useful to the user and to those receiving presence information.